/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package manejadores;

/**
 *
 * @author Alejandro
 */
import com.akcess.exception.*;
import com.akcess.vo.*;
import com.akcess.impl.*;
import com.akcess.dao.*;
import java.sql.*;
import java.util.*;

/**
 *
 * @author Ramon
 */
public class ManejadorEventos {

    private Connection conexion = null;

    public ManejadorEventos(Connection con) {
        this.conexion = con;
    }

    /**
     * Agrega un nuevo tipo de evento a la tabla Evento en la BD.
     * @param evento Es el nuevo Evento a ser agregado.
     * @throws com.akcess.exception.EventoException Lanza excepciones del tipo EventoException, creada por el DAOGenerator.
     */
    public void AgregarEvento(Evento evento) throws EventoException {

        EventoDAOImpl manejadorUbi = new EventoDAOImpl();
        manejadorUbi.insert(evento, this.conexion);

    }

    /**
     * Realiza el borrado en la BD de un Evento determinado.
     * @param idEvento Contiene el id del Evento que sera eliminado.
     * @throws com.akcess.exception.EventoException Lanza excepciones del tipo EventoException, creada por el DAOGenerator.
     */
    public void BorrarEvento(int idEvento) throws EventoException {
        //Me conecto a la BD           
        EventoPK eventoPK = new EventoPK();
        eventoPK.setId_evento(idEvento);
        EventoDAOImpl evento = new EventoDAOImpl();
        evento.delete(eventoPK, this.conexion);
    }

    /**
     * Nos devuelve un evento determinado por el id que se recibe.
     * @param idEvento Contiene el id del Evento que sera buscado.
     * @return Objeto Ubicacion Devuelve un objeto que contiene el Evento encontrado.
     */
    public Evento ObtenerEvento(int idEvento) throws EventoException {

        Evento evento = null;
        EventoDAOImpl eventoDAO = new EventoDAOImpl();
        evento = eventoDAO.findByPrimaryKey(idEvento, this.conexion);

        return evento;
    }

    /**
     * Retorna todos los Eventos que existen en la base de datos.
     * @return Evento[] Que es un vector que contiene a todos los eventos que existen en el sistema. 
     * @throws com.akcess.exception.EventoException Lanza excepciones del tipo EventoException, creada por el DAOGenerator.
     */
    public Evento[] ObtenerEventos() throws EventoException {
        Evento[] eventos = null;

        EventoDAOImpl eventoDAO = new EventoDAOImpl();
        eventos = eventoDAO.findAll(this.conexion);

        return eventos;
    }

    /**
     * Modifica un evento determinado en la tabla Evento, en la BD.
     * @param evento Representa el Evento que sera modificado.
     * @throws com.akcess.exception.EventoException Lanza excepciones del tipo EventoException, creada por el DAOGenerator.
     */
    public void ModificarEvento(Evento evento) throws EventoException {

        EventoPK eventoPK = new EventoPK();
        eventoPK.setId_evento(evento.getId_evento());
        EventoDAOImpl manejadorEve = new EventoDAOImpl();
        manejadorEve.update(eventoPK, evento, this.conexion);

    }
}
